home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magazine 28 Bonus / CDRomMagazine-SoftKey-ArtPassion-FrenchVersion-Win31Mac.bin / data / ltcrepl.dir / 00084_Script_shadow game 1 < prev    next >
Text File  |  1996-05-01  |  7KB  |  240 lines

  1. -- ---------------------------------------------------------------
  2. -- Handler initializeShadowGame 
  3.  
  4. on initializeShadowGame flag
  5.   global iconsSprite, numIcons, hilitIcon, shadow, firstPlacedShadow
  6.   global currentPlacedShadow,lastPlacedShadow,tag
  7.   global goodJob,screenLocH,screenLocV
  8.   
  9.   set tag = flag
  10.   set numIcons = 15
  11.   
  12.   set goodJob = 22 -- sprite containing the "good job" screen   added by MB nov 12
  13.   set screenLocH = 345
  14.   set screenLocV = 206
  15.   puppetSprite goodJob, TRUE
  16.   
  17.   set iconsSprite = 4
  18.   set hilitIcon = 5
  19.   set shadow = 6
  20.   set firstPlacedShadow = 7
  21.   set lastPlacedShadow = firstPlacedShadow + numIcons - 1
  22.   set currentPlacedShadow = firstPlacedShadow
  23.   
  24.   repeat with i = firstPlacedShadow to lastPlacedShadow
  25.     removeFromStage(i)
  26.   end repeat
  27.   
  28.   
  29.   puppetSprite iconsSprite, TRUE
  30.   puppetSprite hilitIcon, TRUE
  31.   puppetSprite shadow, TRUE
  32.   
  33.   repeat with i = firstPlacedShadow to lastPlacedShadow
  34.     puppetSprite i, TRUE
  35.   end repeat
  36.   
  37.   --  global fingerCursor
  38.   --  set the cursor of sprite iconsSprite = fingerCursor
  39.   --  set the cursor of sprite shadow = fingerCursor
  40.   
  41.   global iconInfo, shadowInfo,shadowInfo1
  42.   set iconInfo = field "icon locations"
  43.   if tag = 0 then
  44.     
  45.     set shadowInfo = field "shadow locations"
  46.   else
  47.     set shadowInfo = field "shadow locations1"
  48.   end if
  49.   
  50.   
  51.   
  52.   global placedShadowsList
  53.   set placedShadowsList = []
  54.   
  55.   set the foreColor of sprite hilitIcon = 5 -- yellow
  56.   when mouseDown then shadowDrag
  57. end
  58.  
  59. -- ---------------------------------------------------------------
  60. -- Handler doClickIconBar is called when the user clicks on the 
  61. -- icon bar.
  62.  
  63. on doClickIconBar iconBar, clickV
  64.   global numIcons,clickedIconName
  65.   
  66.   set buttonIndex = getVButtonIndex(iconBar, numIcons, clickV)
  67.   set clickedIconName = getClickedIconName(buttonIndex)
  68.   hiliteClickedIcon(buttonIndex, clickedIconName)
  69.   placeShadowOnCenterStage(buttonIndex, clickedIconName)
  70. end
  71.  
  72. -- ---------------------------------------------------------------
  73. -- Handler hiliteClickedIcon hilites the clicked icon on the icon
  74. -- bar.
  75.  
  76. on hiliteClickedIcon iconIndex, clickedIconName
  77.   global hilitIcon
  78.   
  79.   set iconLocation = getIconLocation(iconIndex)
  80.   
  81.   set hilitCast = clickedIconName && "H"
  82.   set the castNum of sprite hilitIcon = the number of cast hilitCast
  83.   set the locH of sprite hilitIcon = value(word 1 of iconLocation)
  84.   set the locV of sprite hilitIcon = value(word 2 of iconLocation)
  85.   updateStage
  86. end
  87.  
  88. -- -----------------------------------------------------------
  89. -- Handler getClickedIconName returns the name of the icon clicked.
  90.  
  91. on getClickedIconName iconIndex
  92.   global iconInfo
  93.   return item 1 of line iconIndex of iconInfo
  94. end
  95.  
  96. -- -----------------------------------------------------------
  97. -- Handler getIconLocation returns the locH and the locV (as a
  98. -- point) of the hilit icon.
  99.  
  100. on getIconLocation iconIndex
  101.   global iconInfo
  102.   return item 2 of line iconIndex of iconInfo
  103. end
  104.  
  105. -- -----------------------------------------------------------
  106. -- Handler placeShadowOnCenterStage places the shadow of the clicked icon
  107. -- at the center of the stage.
  108.  
  109. on placeShadowOnCenterStage iconIndex, clickedIconName
  110.   global shadow, placedShadowsList,clickedIconName,hilitIcon
  111.   
  112.   set shadowCast = clickedIconName && "Shadow"
  113.   set the castNum of sprite shadow = the number of cast shadowCast 
  114.   
  115.   if not(getPos(placedShadowsList, clickedIconName)) then
  116.     -- not placed yet
  117.     
  118.     
  119.     set the loch of sprite shadow = 320 -- center H
  120.     set the locv of sprite shadow = 240 -- center V
  121.     updateStage
  122.     
  123.     setShadowLocations(iconIndex)
  124.   else -- placed already
  125.     removeFromStage(shadow)
  126.     beep
  127.   end if
  128. end
  129.  
  130. -- -----------------------------------------------------------
  131. -- Handler setShadowLocations sets the global variables shadowH
  132. -- and shadowV to the click-to-place location of the current
  133. -- shadow.
  134.  
  135. on setShadowLocations buttonIndex
  136.   global shadowH, shadowV, shadowInfo
  137.   
  138.   set shadowH = value(word 1 of item 2 of line buttonIndex of shadowInfo)
  139.   set shadowV = value(word 2 of item 2 of line buttonIndex of shadowInfo)
  140. end
  141.  
  142. -- -----------------------------------------------------------
  143. -- Handler updateCurrentPlacedShadow sets the global variable
  144. -- currentPlacedShadow to its value + 1.  This handler is
  145. -- called when the user successfully places a shadow onstage.
  146.  
  147. on updateCurrentPlacedShadow tag
  148.   global currentPlacedShadow,lastPlacedShadow,tag,hilitIcon
  149.   global screenLocH,screenLocV,goodJob
  150.   
  151.   set currentPlacedShadow = currentPlacedShadow + 1
  152.   if currentPlacedShadow = lastPlacedShadow + 1 then
  153.     if tag = 0 then
  154.       removefromstage(hilitIcon)
  155.       setPos goodJob,screenLocH,screenLocV --show the 'good job" screen
  156.       puppetSound "applause"
  157.       updateStage
  158.       waitTicks 360
  159.       setPos goodJob,(screenLocH + 1000),screenLocV --hide the 'good job" screen
  160.       go to frame "LTcrePlSt2"
  161.     else
  162.       removefromstage(hilitIcon)
  163.       puppetSound "crowd"
  164.       updateStage
  165.       waitTicks 120
  166.       go to frame "LTcrePlSt1"
  167.     end if
  168.     
  169.   end if
  170.   
  171. end
  172.  
  173. -- -----------------------------------------------------------
  174. -- Handler updatePlacedShadowsList adds the just placed shadow
  175. -- to the global variable placedShadowsList.
  176.  
  177. on updatePlacedShadowsList
  178.   global placedShadowsList, shadow
  179.   
  180.   add(placedShadowsList, word 1 of the name of cast the castNum of sprite shadow)
  181. end
  182.  
  183. -- -----------------------------------------------------------
  184. -- Handler hilitePlacedShadow hilites the placed shadow of the
  185. -- given name
  186.  
  187. on hilitePlacedShadow clickedIconName
  188.   global firstPlacedShadow, currentPlacedShadow
  189.   
  190.   repeat with i = firstPlacedShadow to currentPlacedShadow
  191.     if the name of cast the castNum of sprite i contains clickedIconName then
  192.       repeat with j = 1 to 3
  193.         set the foreColor of sprite i = 5
  194.         updateStage
  195.         waitTicks 5
  196.         set the foreColor of sprite i = 255 -- black
  197.         updateStage
  198.       end repeat
  199.       exit repeat  
  200.     end if
  201.   end repeat
  202. end
  203.  
  204.  
  205.  
  206. -- Handler hilitePlacedIcon hilites the placed icon of the
  207. -- given name
  208.  
  209. on hilitePlacedIcon clickedIconName
  210.   
  211.   repeat with j = 1 to 5
  212.     set the foreColor of sprite clickedIconName = 5
  213.     updateStage
  214.     waitTicks 25
  215.     set the foreColor of sprite clickedIconName = 35 -- black
  216.     updateStage
  217.   end repeat
  218.   set the foreColor of sprite clickedIconName = 5
  219. end
  220.  
  221.  
  222. -- handler showScreen shows the "good job" screen during the applause
  223. -- added by MB nov 12
  224.  
  225. on setPos aSprite,aLocH,aLocV
  226.   set the locH of sprite aSprite = aLocH
  227.   set the locV of sprite aSprite = aLocV
  228.   updateStage
  229. end
  230.  
  231.  
  232. -- handler waitTicksInterruptable is same as waitTicks but when clicking the 
  233. -- mouse it is interrupted.
  234.  
  235. on waitTicksInterruptable howMany
  236.   put the ticks into startTicks
  237.   repeat while the ticks < startTicks + howMany AND NOT the mouseDown
  238.     processFrame  
  239.   end repeat  
  240. end